package com.tanhua.server.controller;

import com.tanhua.domain.db.User;
import com.tanhua.domain.vo.ErrorResult;
import com.tanhua.dubbo.api.UserApi;
import com.tanhua.server.interceptor.UserHolder;
import com.tanhua.server.service.UserSerivce;
import org.apache.dubbo.config.annotation.Reference;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

import java.util.HashMap;
import java.util.Map;

/**
 * 1、保存用户
 *  请求链接
 *     /user/saveUser
 *     请求方式：post
 * 2、根据手机号码查询用户
 *     /user/findByMobile
 *     请求方式：get
 *
 * 问题：
 *   1：controller中配置大量的数据结构转化的代码和业务代码
 *      引入service解决问题
 *   2：客户端调用的时候，无法区分是否调用成功
 *      i：正常调用（成功，失败）
 *      ii：异常信息
 *      发送请求相应状态约定：
 *        200：成功
 *        500：失败
 *          失败信息
 *             errCode ： 错误码
 *             errMessage  : 错误信息
 *      解决方案：
 *        通过ResponseEntity 包裹返回值
 */
@RestController
@RequestMapping("/user")
public class LoginController {

    @Autowired
    private UserSerivce userSerivce;

    /**
     * 发送短信验证码
     */
    @PostMapping("/login")
    public ResponseEntity login(@RequestBody Map map) {
        String mobile = (String) map.get("phone");
        return userSerivce.sendMsg(mobile);
    }


    /**
     * 验证码校验登录
     */
    @PostMapping("/loginVerification")
    public ResponseEntity loginVerification(@RequestBody Map map) {
        String mobile = (String) map.get("phone");
        String code = (String) map.get("verificationCode");
        return userSerivce.login(mobile,code);
    }
}
